package com.rytx.common.core.domain.model;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.rytx.common.annotation.Excel;
import com.rytx.common.core.domain.BaseEntity;

import javax.management.relation.Role;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import java.util.Date;
import java.util.Set;

/**
 * 用户信息对象 art_user
 *
 * @author rytx
 * @date 2024-04-29
 */
@lombok.Data
@lombok.ToString
public class ArtUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** 主键 */
    private Long id;
    /** 用户名 */
    @Excel(name = "用户名")
    private String userName;
    //昵称
    @Excel(name = "昵称")
    private String nickName;
    /** 密码 */
    @Excel(name = "密码")
    @NotBlank(message = "密码不能为空")
    @Size(min = 6, max = 20, message = "密码长度必须在6到20之间")
    private String userPassword;
    /** 真实姓名 */
    @Excel(name = "真实姓名")
    private String userRealName;
    /** 身份证号码 */
    @Excel(name = "身份证号码")
    private String userCardId;
    /** 性别 */
    @Excel(name = "性别")
    private String userGender;
    /** 出生日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date userBirthday;
    /** 手机号 */
    @Excel(name = "手机号")
    @NotBlank(message = "手机号不能为空")
    @Size(min = 11, max = 11, message = "手机号长度必须为11位")
    private String userPhone;
    /** 邮箱 */
    @Excel(name = "邮箱")
    private String userEmail;
    /** 地址 */
    @Excel(name = "地址")
    private String userAddress;
    /** 头像 */
    @Excel(name = "头像")
    private String userAvatarUrl;
    /** 简介 */
    @Excel(name = "简介")
    private String userIntroduction;
    /** 状态 */
    @Excel(name = "状态")
    private String userStatus;
    /** 角色 */
    @Excel(name = "角色")
    private String userRole;
    /** 合作商ID */
    @Excel(name = "合作商ID")
    private Long partnersId;
    @Excel(name = "支付宝openid")
    private String aliOpenId;
    @Excel(name = "城市")
    private String city;
    @Excel(name = "省份")
    private String province;
    public Set<Role> roles;
    private String userFrom;
    private String wxOpenId;

}
